// EcoModeler - C# Edition :: Version 9.16 build 3301
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using Eco.Services;
using Eco.ObjectRepresentation;
using Eco.ObjectImplementation;
using Eco.UmlRt;
using Eco.UmlCodeAttributes;
using Eco.Subscription;
using CommonClasses.Model;
using System.Windows.Forms;

namespace TestImplementations.Model
{
	#region MM_ECO_Generated
	#region Attributes
	[UmlElement(Id="{37f5a50a-969d-44e9-b15c-611e9e6aac9b}")]
	#endregion

	#endregion
	public class TestCodeEditor: object, ILoopBack, IDocumentEditor
	{
		#region MM_ECO AutoGenerated ECO code

		protected IContent eco_Content;

		IObject IObjectProvider.AsIObject()
		{
			return this.eco_Content.AsIObject();
		}

		public IObjectInstance AsIObject()
		{
			return this.eco_Content.AsIObject();
		}

		public struct Eco_LoopbackIndices
		{
			public const int Eco_FirstMember = 0;
			public const int Eco_MemberCount = (Eco_FirstMember + 0);
		}

		public virtual object get_MemberByIndex(int index)
		{
			switch (index)
			{
				default: throw new System.IndexOutOfRangeException();
			}
		}

		public virtual void set_MemberByIndex(int index, object value)
		{
			switch (index)
			{
				default: throw new System.IndexOutOfRangeException();
			}
		}

		protected void Initialize(IEcoServiceProvider serviceProvider)
		{
			if ((this.eco_Content == null))
			{
				IInternalObjectContentFactory factory = ((IInternalObjectContentFactory)(serviceProvider.GetEcoService(typeof(IInternalObjectContentFactory))));
				this.eco_Content = factory.CreateContent(this);
				this.eco_Content.LoopbackValid();
			}
		}

		protected void Deinitialize(IEcoServiceProvider serviceProvider)
		{
			if ((this.eco_Content != null))
			{
				IInternalObjectContentFactory factory = ((IInternalObjectContentFactory)(serviceProvider.GetEcoService(typeof(IInternalObjectContentFactory))));
				factory.CreateContentFailed(this.eco_Content, this);
				this.eco_Content = null;
			}
		}
		#endregion

		#region MM_ECO Model owned attributes
		//Note: Do not remove any property within this region, nor change its signature
		#endregion

		#region MM_ECO Model owned methods
		//Note: Do not remove any method within this region, nor change its signature

		public TestCodeEditor(IContent content)
		{
			#region MM_ECO_Generated
			this.eco_Content = content;
			content.AssertLoopbackUnassigned();
			#endregion
		}

		public TestCodeEditor(IEcoServiceProvider serviceProvider)
		{
			this.Initialize(serviceProvider);
			try
			{
				// Place user code ONLY here
			}
			catch (System.Exception)
			{
				this.Deinitialize(serviceProvider);
				throw;
			}
		}
		#endregion

        #region IDocumentEditor Members

        public IList<ICompilationUnit> GetCompilationUnits()
        {
            throw new NotImplementedException();
        }

        public ContextMenuStrip GetDocElemMenu(IDocStructElement DocStructElement)
        {
            throw new NotImplementedException();
        }

        public IEcoList<IDocStructElement> GetDocStruct()
        {
            throw new NotImplementedException();
        }

        public void Initialize(TabPage tabpage)
        {
            throw new NotImplementedException();
        }

        public void OnDeselect()
        {
            throw new NotImplementedException();
        }

        public void OnSelect()
        {
            throw new NotImplementedException();
        }

        public void Rename(string NewName)
        {
            throw new NotImplementedException();
        }

        public void Save()
        {
            throw new NotImplementedException();
        }

        public void SaveAs(string path)
        {
            throw new NotImplementedException();
        }

        public void ShowError(Error error)
        {
            throw new NotImplementedException();
        }

        public void ShowExecutePlace(ILPMEDTextPoint breakpoint)
        {
            throw new NotImplementedException();
        }

        public void Verify()
        {
            throw new NotImplementedException();
        }

        public void WatchStateChanged(ILPMEDVariable variable)
        {
            throw new NotImplementedException();
        }

        public string Comment
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool IsCompiled
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool IsDirty
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public bool IsReadOnly
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Name
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        public string Path
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        #region IDocumentEditor Members


        public EcoExtensions.Model.EcoObject obj
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }

        #endregion

        #region IDocumentEditor Members


        public event EventHandler OnDirty;

        #endregion

        #region IDocumentEditor Members


        public event EventHandler OnDirtyChanged;

        public event EventHandler OnStrucChanged;

        #endregion

        #region IDocumentEditor Members


        IEcoList<EcoExtensions.Model.EcoObject> IDocumentEditor.GetDocStruct()
        {
            throw new NotImplementedException();
        }

        #endregion

        #region IDocumentEditor Members


        public void Initialize(Control control)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
